// $ANTLR 3.1.1 src/astudy/parser/sql/QTemplate.g 2009-01-06 15:21:30

package astudy.parser.sql;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

public class QTemplateLexer extends Lexer {
    public static final int ExceptionJoinNode=84;
    public static final int EXISTS=50;
    public static final int COMMA=98;
    public static final int FETCH=9;
    public static final int MINUS=111;
    public static final int AS=4;
    public static final int END=61;
    public static final int THEN=59;
    public static final int OrdersNode=68;
    public static final int ColumnNode=72;
    public static final int ON=43;
    public static final int ORDER=5;
    public static final int AND=45;
    public static final int T__128=128;
    public static final int LOCKS=26;
    public static final int RIGHT=40;
    public static final int CONCAT=56;
    public static final int SELECT=29;
    public static final int LE=106;
    public static final int NG=109;
    public static final int BETWEEN=49;
    public static final int RPAREN=103;
    public static final int DESC=8;
    public static final int CaseExpressionNode=96;
    public static final int PLUS=110;
    public static final int UNION=30;
    public static final int DISTINCT=31;
    public static final int WHEN=58;
    public static final int CompareNode=93;
    public static final int LeftExceptionJoinNode=85;
    public static final int EQ=104;
    public static final int UR=23;
    public static final int OF=17;
    public static final int UPDATE=16;
    public static final int ArrayNode=92;
    public static final int OPTIMIZE=19;
    public static final int PaginationNode=76;
    public static final int ANY=48;
    public static final int CASE=57;
    public static final int FLOAT_POINT=117;
    public static final int TABLE=32;
    public static final int ELSE=60;
    public static final int T__125=125;
    public static final int SEMICOLON=101;
    public static final int CS=24;
    public static final int CrossJoinNode=82;
    public static final int NotNullNode=94;
    public static final int FIRST=10;
    public static final int NULL=55;
    public static final int KEEP=25;
    public static final int ExpressionNode=81;
    public static final int HAVING=35;
    public static final int IDENTIFIER=120;
    public static final int ALL=20;
    public static final int T__124=124;
    public static final int JoinNode=87;
    public static final int CHARACTER_STRING=118;
    public static final int HavingNode=78;
    public static final int WHERE=33;
    public static final int SubQueryNode=65;
    public static final int DOUBLE_BITWISEOR=112;
    public static final int LeftJoinNode=88;
    public static final int T__126=126;
    public static final int CAST=62;
    public static final int INNER=38;
    public static final int FunctionNode=91;
    public static final int ROWS=13;
    public static final int TABLE_COLUMNS=119;
    public static final int DECIMAL=116;
    public static final int DOUBLE_STAR=99;
    public static final int OR=46;
    public static final int NameNode=66;
    public static final int TablesNode=73;
    public static final int INTEGER=115;
    public static final int DIVIDE=113;
    public static final int ColumnsNode=71;
    public static final int NL=108;
    public static final int BY=6;
    public static final int RR=28;
    public static final int GROUP=34;
    public static final int T__127=127;
    public static final int ESCAPE=53;
    public static final int QueryNode=64;
    public static final int LPAREN=102;
    public static final int SINGLELINE_COMMENT=122;
    public static final int DIGIT=114;
    public static final int LEFT=39;
    public static final int ConditionsNode=79;
    public static final int StartNode=63;
    public static final int JOIN=37;
    public static final int OUTER=41;
    public static final int SelectNode=70;
    public static final int FROM=11;
    public static final int NC=22;
    public static final int ExistsNode=90;
    public static final int InnerJoinNode=83;
    public static final int TableFunctionNode=75;
    public static final int RightExceptionJoinNode=86;
    public static final int RS=27;
    public static final int IS=54;
    public static final int ONLY=14;
    public static final int MULTILINE_COMMENT=123;
    public static final int NE=105;
    public static final int GT=107;
    public static final int CastNode=95;
    public static final int GroupByNode=77;
    public static final int TableNode=74;
    public static final int ASC=7;
    public static final int ExpressionsNode=80;
    public static final int LIKE=52;
    public static final int RightJoinNode=89;
    public static final int WITH=21;
    public static final int WHITESPACE=121;
    public static final int IN=51;
    public static final int SOME=47;
    public static final int OrderNode=69;
    public static final int EOF=-1;
    public static final int CROSS=36;
    public static final int FOR=15;
    public static final int STAR=100;
    public static final int NOT=44;
    public static final int AliasNode=67;
    public static final int CaseNode=97;
    public static final int EXCEPTION=42;
    public static final int ROW=12;
    public static final int READ=18;

    // delegates
    // delegators

    public QTemplateLexer() {;} 
    public QTemplateLexer(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public QTemplateLexer(CharStream input, RecognizerSharedState state) {
        super(input,state);

    }
    public String getGrammarFileName() { return "src/astudy/parser/sql/QTemplate.g"; }

    // $ANTLR start "AS"
    public final void mAS() throws RecognitionException {
        try {
            int _type = AS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:7:4: ( 'as' )
            // src/astudy/parser/sql/QTemplate.g:7:6: 'as'
            {
            match("as"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "AS"

    // $ANTLR start "ORDER"
    public final void mORDER() throws RecognitionException {
        try {
            int _type = ORDER;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:8:7: ( 'order' )
            // src/astudy/parser/sql/QTemplate.g:8:9: 'order'
            {
            match("order"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ORDER"

    // $ANTLR start "BY"
    public final void mBY() throws RecognitionException {
        try {
            int _type = BY;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:9:4: ( 'by' )
            // src/astudy/parser/sql/QTemplate.g:9:6: 'by'
            {
            match("by"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "BY"

    // $ANTLR start "ASC"
    public final void mASC() throws RecognitionException {
        try {
            int _type = ASC;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:10:5: ( 'asc' )
            // src/astudy/parser/sql/QTemplate.g:10:7: 'asc'
            {
            match("asc"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ASC"

    // $ANTLR start "DESC"
    public final void mDESC() throws RecognitionException {
        try {
            int _type = DESC;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:11:6: ( 'desc' )
            // src/astudy/parser/sql/QTemplate.g:11:8: 'desc'
            {
            match("desc"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DESC"

    // $ANTLR start "FETCH"
    public final void mFETCH() throws RecognitionException {
        try {
            int _type = FETCH;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:12:7: ( 'fetch' )
            // src/astudy/parser/sql/QTemplate.g:12:9: 'fetch'
            {
            match("fetch"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "FETCH"

    // $ANTLR start "FIRST"
    public final void mFIRST() throws RecognitionException {
        try {
            int _type = FIRST;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:13:7: ( 'first' )
            // src/astudy/parser/sql/QTemplate.g:13:9: 'first'
            {
            match("first"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "FIRST"

    // $ANTLR start "FROM"
    public final void mFROM() throws RecognitionException {
        try {
            int _type = FROM;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:14:6: ( 'from' )
            // src/astudy/parser/sql/QTemplate.g:14:8: 'from'
            {
            match("from"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "FROM"

    // $ANTLR start "ROW"
    public final void mROW() throws RecognitionException {
        try {
            int _type = ROW;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:15:5: ( 'row' )
            // src/astudy/parser/sql/QTemplate.g:15:7: 'row'
            {
            match("row"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ROW"

    // $ANTLR start "ROWS"
    public final void mROWS() throws RecognitionException {
        try {
            int _type = ROWS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:16:6: ( 'rows' )
            // src/astudy/parser/sql/QTemplate.g:16:8: 'rows'
            {
            match("rows"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ROWS"

    // $ANTLR start "ONLY"
    public final void mONLY() throws RecognitionException {
        try {
            int _type = ONLY;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:17:6: ( 'only' )
            // src/astudy/parser/sql/QTemplate.g:17:8: 'only'
            {
            match("only"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ONLY"

    // $ANTLR start "FOR"
    public final void mFOR() throws RecognitionException {
        try {
            int _type = FOR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:18:5: ( 'for' )
            // src/astudy/parser/sql/QTemplate.g:18:7: 'for'
            {
            match("for"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "FOR"

    // $ANTLR start "UPDATE"
    public final void mUPDATE() throws RecognitionException {
        try {
            int _type = UPDATE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:19:8: ( 'update' )
            // src/astudy/parser/sql/QTemplate.g:19:10: 'update'
            {
            match("update"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "UPDATE"

    // $ANTLR start "OF"
    public final void mOF() throws RecognitionException {
        try {
            int _type = OF;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:20:4: ( 'of' )
            // src/astudy/parser/sql/QTemplate.g:20:6: 'of'
            {
            match("of"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "OF"

    // $ANTLR start "READ"
    public final void mREAD() throws RecognitionException {
        try {
            int _type = READ;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:21:6: ( 'read' )
            // src/astudy/parser/sql/QTemplate.g:21:8: 'read'
            {
            match("read"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "READ"

    // $ANTLR start "OPTIMIZE"
    public final void mOPTIMIZE() throws RecognitionException {
        try {
            int _type = OPTIMIZE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:22:10: ( 'optimize' )
            // src/astudy/parser/sql/QTemplate.g:22:12: 'optimize'
            {
            match("optimize"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "OPTIMIZE"

    // $ANTLR start "ALL"
    public final void mALL() throws RecognitionException {
        try {
            int _type = ALL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:23:5: ( 'all' )
            // src/astudy/parser/sql/QTemplate.g:23:7: 'all'
            {
            match("all"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ALL"

    // $ANTLR start "WITH"
    public final void mWITH() throws RecognitionException {
        try {
            int _type = WITH;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:24:6: ( 'with' )
            // src/astudy/parser/sql/QTemplate.g:24:8: 'with'
            {
            match("with"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "WITH"

    // $ANTLR start "NC"
    public final void mNC() throws RecognitionException {
        try {
            int _type = NC;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:25:4: ( 'nc' )
            // src/astudy/parser/sql/QTemplate.g:25:6: 'nc'
            {
            match("nc"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NC"

    // $ANTLR start "UR"
    public final void mUR() throws RecognitionException {
        try {
            int _type = UR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:26:4: ( 'ur' )
            // src/astudy/parser/sql/QTemplate.g:26:6: 'ur'
            {
            match("ur"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "UR"

    // $ANTLR start "CS"
    public final void mCS() throws RecognitionException {
        try {
            int _type = CS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:27:4: ( 'cs' )
            // src/astudy/parser/sql/QTemplate.g:27:6: 'cs'
            {
            match("cs"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CS"

    // $ANTLR start "KEEP"
    public final void mKEEP() throws RecognitionException {
        try {
            int _type = KEEP;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:28:6: ( 'keep' )
            // src/astudy/parser/sql/QTemplate.g:28:8: 'keep'
            {
            match("keep"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "KEEP"

    // $ANTLR start "LOCKS"
    public final void mLOCKS() throws RecognitionException {
        try {
            int _type = LOCKS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:29:7: ( 'locks' )
            // src/astudy/parser/sql/QTemplate.g:29:9: 'locks'
            {
            match("locks"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LOCKS"

    // $ANTLR start "RS"
    public final void mRS() throws RecognitionException {
        try {
            int _type = RS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:30:4: ( 'rs' )
            // src/astudy/parser/sql/QTemplate.g:30:6: 'rs'
            {
            match("rs"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "RS"

    // $ANTLR start "RR"
    public final void mRR() throws RecognitionException {
        try {
            int _type = RR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:31:4: ( 'rr' )
            // src/astudy/parser/sql/QTemplate.g:31:6: 'rr'
            {
            match("rr"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "RR"

    // $ANTLR start "SELECT"
    public final void mSELECT() throws RecognitionException {
        try {
            int _type = SELECT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:32:8: ( 'select' )
            // src/astudy/parser/sql/QTemplate.g:32:10: 'select'
            {
            match("select"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "SELECT"

    // $ANTLR start "UNION"
    public final void mUNION() throws RecognitionException {
        try {
            int _type = UNION;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:33:7: ( 'union' )
            // src/astudy/parser/sql/QTemplate.g:33:9: 'union'
            {
            match("union"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "UNION"

    // $ANTLR start "DISTINCT"
    public final void mDISTINCT() throws RecognitionException {
        try {
            int _type = DISTINCT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:34:10: ( 'distinct' )
            // src/astudy/parser/sql/QTemplate.g:34:12: 'distinct'
            {
            match("distinct"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DISTINCT"

    // $ANTLR start "TABLE"
    public final void mTABLE() throws RecognitionException {
        try {
            int _type = TABLE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:35:7: ( 'table' )
            // src/astudy/parser/sql/QTemplate.g:35:9: 'table'
            {
            match("table"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "TABLE"

    // $ANTLR start "WHERE"
    public final void mWHERE() throws RecognitionException {
        try {
            int _type = WHERE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:36:7: ( 'where' )
            // src/astudy/parser/sql/QTemplate.g:36:9: 'where'
            {
            match("where"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "WHERE"

    // $ANTLR start "GROUP"
    public final void mGROUP() throws RecognitionException {
        try {
            int _type = GROUP;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:37:7: ( 'group' )
            // src/astudy/parser/sql/QTemplate.g:37:9: 'group'
            {
            match("group"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "GROUP"

    // $ANTLR start "HAVING"
    public final void mHAVING() throws RecognitionException {
        try {
            int _type = HAVING;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:38:8: ( 'having' )
            // src/astudy/parser/sql/QTemplate.g:38:10: 'having'
            {
            match("having"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "HAVING"

    // $ANTLR start "CROSS"
    public final void mCROSS() throws RecognitionException {
        try {
            int _type = CROSS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:39:7: ( 'cross' )
            // src/astudy/parser/sql/QTemplate.g:39:9: 'cross'
            {
            match("cross"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CROSS"

    // $ANTLR start "JOIN"
    public final void mJOIN() throws RecognitionException {
        try {
            int _type = JOIN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:40:6: ( 'join' )
            // src/astudy/parser/sql/QTemplate.g:40:8: 'join'
            {
            match("join"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "JOIN"

    // $ANTLR start "INNER"
    public final void mINNER() throws RecognitionException {
        try {
            int _type = INNER;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:41:7: ( 'inner' )
            // src/astudy/parser/sql/QTemplate.g:41:9: 'inner'
            {
            match("inner"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "INNER"

    // $ANTLR start "LEFT"
    public final void mLEFT() throws RecognitionException {
        try {
            int _type = LEFT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:42:6: ( 'left' )
            // src/astudy/parser/sql/QTemplate.g:42:8: 'left'
            {
            match("left"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LEFT"

    // $ANTLR start "RIGHT"
    public final void mRIGHT() throws RecognitionException {
        try {
            int _type = RIGHT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:43:7: ( 'right' )
            // src/astudy/parser/sql/QTemplate.g:43:9: 'right'
            {
            match("right"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "RIGHT"

    // $ANTLR start "OUTER"
    public final void mOUTER() throws RecognitionException {
        try {
            int _type = OUTER;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:44:7: ( 'outer' )
            // src/astudy/parser/sql/QTemplate.g:44:9: 'outer'
            {
            match("outer"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "OUTER"

    // $ANTLR start "EXCEPTION"
    public final void mEXCEPTION() throws RecognitionException {
        try {
            int _type = EXCEPTION;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:45:11: ( 'exception' )
            // src/astudy/parser/sql/QTemplate.g:45:13: 'exception'
            {
            match("exception"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "EXCEPTION"

    // $ANTLR start "ON"
    public final void mON() throws RecognitionException {
        try {
            int _type = ON;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:46:4: ( 'on' )
            // src/astudy/parser/sql/QTemplate.g:46:6: 'on'
            {
            match("on"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ON"

    // $ANTLR start "NOT"
    public final void mNOT() throws RecognitionException {
        try {
            int _type = NOT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:47:5: ( 'not' )
            // src/astudy/parser/sql/QTemplate.g:47:7: 'not'
            {
            match("not"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NOT"

    // $ANTLR start "AND"
    public final void mAND() throws RecognitionException {
        try {
            int _type = AND;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:48:5: ( 'and' )
            // src/astudy/parser/sql/QTemplate.g:48:7: 'and'
            {
            match("and"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "AND"

    // $ANTLR start "OR"
    public final void mOR() throws RecognitionException {
        try {
            int _type = OR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:49:4: ( 'or' )
            // src/astudy/parser/sql/QTemplate.g:49:6: 'or'
            {
            match("or"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "OR"

    // $ANTLR start "SOME"
    public final void mSOME() throws RecognitionException {
        try {
            int _type = SOME;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:50:6: ( 'some' )
            // src/astudy/parser/sql/QTemplate.g:50:8: 'some'
            {
            match("some"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "SOME"

    // $ANTLR start "ANY"
    public final void mANY() throws RecognitionException {
        try {
            int _type = ANY;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:51:5: ( 'any' )
            // src/astudy/parser/sql/QTemplate.g:51:7: 'any'
            {
            match("any"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ANY"

    // $ANTLR start "BETWEEN"
    public final void mBETWEEN() throws RecognitionException {
        try {
            int _type = BETWEEN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:52:9: ( 'between' )
            // src/astudy/parser/sql/QTemplate.g:52:11: 'between'
            {
            match("between"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "BETWEEN"

    // $ANTLR start "EXISTS"
    public final void mEXISTS() throws RecognitionException {
        try {
            int _type = EXISTS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:53:8: ( 'exists' )
            // src/astudy/parser/sql/QTemplate.g:53:10: 'exists'
            {
            match("exists"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "EXISTS"

    // $ANTLR start "IN"
    public final void mIN() throws RecognitionException {
        try {
            int _type = IN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:54:4: ( 'in' )
            // src/astudy/parser/sql/QTemplate.g:54:6: 'in'
            {
            match("in"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "IN"

    // $ANTLR start "LIKE"
    public final void mLIKE() throws RecognitionException {
        try {
            int _type = LIKE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:55:6: ( 'like' )
            // src/astudy/parser/sql/QTemplate.g:55:8: 'like'
            {
            match("like"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LIKE"

    // $ANTLR start "ESCAPE"
    public final void mESCAPE() throws RecognitionException {
        try {
            int _type = ESCAPE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:56:8: ( 'escape' )
            // src/astudy/parser/sql/QTemplate.g:56:10: 'escape'
            {
            match("escape"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ESCAPE"

    // $ANTLR start "IS"
    public final void mIS() throws RecognitionException {
        try {
            int _type = IS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:57:4: ( 'is' )
            // src/astudy/parser/sql/QTemplate.g:57:6: 'is'
            {
            match("is"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "IS"

    // $ANTLR start "NULL"
    public final void mNULL() throws RecognitionException {
        try {
            int _type = NULL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:58:6: ( 'null' )
            // src/astudy/parser/sql/QTemplate.g:58:8: 'null'
            {
            match("null"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NULL"

    // $ANTLR start "CONCAT"
    public final void mCONCAT() throws RecognitionException {
        try {
            int _type = CONCAT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:59:8: ( 'concat' )
            // src/astudy/parser/sql/QTemplate.g:59:10: 'concat'
            {
            match("concat"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CONCAT"

    // $ANTLR start "CASE"
    public final void mCASE() throws RecognitionException {
        try {
            int _type = CASE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:60:6: ( 'case' )
            // src/astudy/parser/sql/QTemplate.g:60:8: 'case'
            {
            match("case"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CASE"

    // $ANTLR start "WHEN"
    public final void mWHEN() throws RecognitionException {
        try {
            int _type = WHEN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:61:6: ( 'when' )
            // src/astudy/parser/sql/QTemplate.g:61:8: 'when'
            {
            match("when"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "WHEN"

    // $ANTLR start "THEN"
    public final void mTHEN() throws RecognitionException {
        try {
            int _type = THEN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:62:6: ( 'then' )
            // src/astudy/parser/sql/QTemplate.g:62:8: 'then'
            {
            match("then"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "THEN"

    // $ANTLR start "ELSE"
    public final void mELSE() throws RecognitionException {
        try {
            int _type = ELSE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:63:6: ( 'else' )
            // src/astudy/parser/sql/QTemplate.g:63:8: 'else'
            {
            match("else"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ELSE"

    // $ANTLR start "END"
    public final void mEND() throws RecognitionException {
        try {
            int _type = END;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:64:5: ( 'end' )
            // src/astudy/parser/sql/QTemplate.g:64:7: 'end'
            {
            match("end"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "END"

    // $ANTLR start "CAST"
    public final void mCAST() throws RecognitionException {
        try {
            int _type = CAST;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:65:6: ( 'cast' )
            // src/astudy/parser/sql/QTemplate.g:65:8: 'cast'
            {
            match("cast"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CAST"

    // $ANTLR start "T__124"
    public final void mT__124() throws RecognitionException {
        try {
            int _type = T__124;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:66:8: ( 'GRAPHIC_STRING' )
            // src/astudy/parser/sql/QTemplate.g:66:10: 'GRAPHIC_STRING'
            {
            match("GRAPHIC_STRING"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__124"

    // $ANTLR start "T__125"
    public final void mT__125() throws RecognitionException {
        try {
            int _type = T__125;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:67:8: ( 'BINARY-STRING' )
            // src/astudy/parser/sql/QTemplate.g:67:10: 'BINARY-STRING'
            {
            match("BINARY-STRING"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__125"

    // $ANTLR start "T__126"
    public final void mT__126() throws RecognitionException {
        try {
            int _type = T__126;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:68:8: ( 'DECIMAL_POINT' )
            // src/astudy/parser/sql/QTemplate.g:68:10: 'DECIMAL_POINT'
            {
            match("DECIMAL_POINT"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__126"

    // $ANTLR start "T__127"
    public final void mT__127() throws RecognitionException {
        try {
            int _type = T__127;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:69:8: ( 'Delimiters' )
            // src/astudy/parser/sql/QTemplate.g:69:10: 'Delimiters'
            {
            match("Delimiters"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__127"

    // $ANTLR start "T__128"
    public final void mT__128() throws RecognitionException {
        try {
            int _type = T__128;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:70:8: ( 'current date' )
            // src/astudy/parser/sql/QTemplate.g:70:10: 'current date'
            {
            match("current date"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__128"

    // $ANTLR start "COMMA"
    public final void mCOMMA() throws RecognitionException {
        try {
            int _type = COMMA;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:137:8: ( ',' )
            // src/astudy/parser/sql/QTemplate.g:137:10: ','
            {
            match(','); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "COMMA"

    // $ANTLR start "DOUBLE_STAR"
    public final void mDOUBLE_STAR() throws RecognitionException {
        try {
            int _type = DOUBLE_STAR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:138:14: ( '**' )
            // src/astudy/parser/sql/QTemplate.g:138:16: '**'
            {
            match("**"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DOUBLE_STAR"

    // $ANTLR start "STAR"
    public final void mSTAR() throws RecognitionException {
        try {
            int _type = STAR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:139:7: ( '*' )
            // src/astudy/parser/sql/QTemplate.g:139:9: '*'
            {
            match('*'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "STAR"

    // $ANTLR start "SEMICOLON"
    public final void mSEMICOLON() throws RecognitionException {
        try {
            int _type = SEMICOLON;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:140:12: ( ';' )
            // src/astudy/parser/sql/QTemplate.g:140:14: ';'
            {
            match(';'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "SEMICOLON"

    // $ANTLR start "LPAREN"
    public final void mLPAREN() throws RecognitionException {
        try {
            int _type = LPAREN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:141:9: ( '(' )
            // src/astudy/parser/sql/QTemplate.g:141:11: '('
            {
            match('('); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LPAREN"

    // $ANTLR start "RPAREN"
    public final void mRPAREN() throws RecognitionException {
        try {
            int _type = RPAREN;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:142:9: ( ')' )
            // src/astudy/parser/sql/QTemplate.g:142:11: ')'
            {
            match(')'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "RPAREN"

    // $ANTLR start "EQ"
    public final void mEQ() throws RecognitionException {
        try {
            int _type = EQ;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:143:5: ( '=' )
            // src/astudy/parser/sql/QTemplate.g:143:7: '='
            {
            match('='); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "EQ"

    // $ANTLR start "NE"
    public final void mNE() throws RecognitionException {
        try {
            int _type = NE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:144:5: ( '<>' | '!=' )
            int alt1=2;
            int LA1_0 = input.LA(1);

            if ( (LA1_0=='<') ) {
                alt1=1;
            }
            else if ( (LA1_0=='!') ) {
                alt1=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 1, 0, input);

                throw nvae;
            }
            switch (alt1) {
                case 1 :
                    // src/astudy/parser/sql/QTemplate.g:144:7: '<>'
                    {
                    match("<>"); 


                    }
                    break;
                case 2 :
                    // src/astudy/parser/sql/QTemplate.g:144:12: '!='
                    {
                    match("!="); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NE"

    // $ANTLR start "LE"
    public final void mLE() throws RecognitionException {
        try {
            int _type = LE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:145:5: ( '<' )
            // src/astudy/parser/sql/QTemplate.g:145:7: '<'
            {
            match('<'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "LE"

    // $ANTLR start "GT"
    public final void mGT() throws RecognitionException {
        try {
            int _type = GT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:146:5: ( '>' )
            // src/astudy/parser/sql/QTemplate.g:146:7: '>'
            {
            match('>'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "GT"

    // $ANTLR start "NL"
    public final void mNL() throws RecognitionException {
        try {
            int _type = NL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:147:5: ( '>=' | '!<' )
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( (LA2_0=='>') ) {
                alt2=1;
            }
            else if ( (LA2_0=='!') ) {
                alt2=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;
            }
            switch (alt2) {
                case 1 :
                    // src/astudy/parser/sql/QTemplate.g:147:7: '>='
                    {
                    match(">="); 


                    }
                    break;
                case 2 :
                    // src/astudy/parser/sql/QTemplate.g:147:12: '!<'
                    {
                    match("!<"); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NL"

    // $ANTLR start "NG"
    public final void mNG() throws RecognitionException {
        try {
            int _type = NG;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:148:5: ( '<=' | '!>' )
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0=='<') ) {
                alt3=1;
            }
            else if ( (LA3_0=='!') ) {
                alt3=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 3, 0, input);

                throw nvae;
            }
            switch (alt3) {
                case 1 :
                    // src/astudy/parser/sql/QTemplate.g:148:7: '<='
                    {
                    match("<="); 


                    }
                    break;
                case 2 :
                    // src/astudy/parser/sql/QTemplate.g:148:12: '!>'
                    {
                    match("!>"); 


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NG"

    // $ANTLR start "PLUS"
    public final void mPLUS() throws RecognitionException {
        try {
            int _type = PLUS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:149:7: ( '+' )
            // src/astudy/parser/sql/QTemplate.g:149:9: '+'
            {
            match('+'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "PLUS"

    // $ANTLR start "MINUS"
    public final void mMINUS() throws RecognitionException {
        try {
            int _type = MINUS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:150:8: ( '-' )
            // src/astudy/parser/sql/QTemplate.g:150:10: '-'
            {
            match('-'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MINUS"

    // $ANTLR start "DOUBLE_BITWISEOR"
    public final void mDOUBLE_BITWISEOR() throws RecognitionException {
        try {
            int _type = DOUBLE_BITWISEOR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:151:18: ( '||' )
            // src/astudy/parser/sql/QTemplate.g:151:20: '||'
            {
            match("||"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DOUBLE_BITWISEOR"

    // $ANTLR start "DIVIDE"
    public final void mDIVIDE() throws RecognitionException {
        try {
            int _type = DIVIDE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:152:9: ( '/' )
            // src/astudy/parser/sql/QTemplate.g:152:11: '/'
            {
            match('/'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DIVIDE"

    // $ANTLR start "DIGIT"
    public final void mDIGIT() throws RecognitionException {
        try {
            // src/astudy/parser/sql/QTemplate.g:156:16: ( '0' .. '9' )
            // src/astudy/parser/sql/QTemplate.g:156:18: '0' .. '9'
            {
            matchRange('0','9'); 

            }

        }
        finally {
        }
    }
    // $ANTLR end "DIGIT"

    // $ANTLR start "INTEGER"
    public final void mINTEGER() throws RecognitionException {
        try {
            int _type = INTEGER;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:157:10: ( ( DIGIT )* )
            // src/astudy/parser/sql/QTemplate.g:157:12: ( DIGIT )*
            {
            // src/astudy/parser/sql/QTemplate.g:157:12: ( DIGIT )*
            loop4:
            do {
                int alt4=2;
                int LA4_0 = input.LA(1);

                if ( ((LA4_0>='0' && LA4_0<='9')) ) {
                    alt4=1;
                }


                switch (alt4) {
            	case 1 :
            	    // src/astudy/parser/sql/QTemplate.g:157:13: DIGIT
            	    {
            	    mDIGIT(); 

            	    }
            	    break;

            	default :
            	    break loop4;
                }
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "INTEGER"

    // $ANTLR start "DECIMAL"
    public final void mDECIMAL() throws RecognitionException {
        try {
            int _type = DECIMAL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:158:10: ( INTEGER ( '.' ( DIGIT )* )? )
            // src/astudy/parser/sql/QTemplate.g:158:12: INTEGER ( '.' ( DIGIT )* )?
            {
            mINTEGER(); 
            // src/astudy/parser/sql/QTemplate.g:158:19: ( '.' ( DIGIT )* )?
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0=='.') ) {
                alt6=1;
            }
            switch (alt6) {
                case 1 :
                    // src/astudy/parser/sql/QTemplate.g:158:20: '.' ( DIGIT )*
                    {
                    match('.'); 
                    // src/astudy/parser/sql/QTemplate.g:158:23: ( DIGIT )*
                    loop5:
                    do {
                        int alt5=2;
                        int LA5_0 = input.LA(1);

                        if ( ((LA5_0>='0' && LA5_0<='9')) ) {
                            alt5=1;
                        }


                        switch (alt5) {
                    	case 1 :
                    	    // src/astudy/parser/sql/QTemplate.g:158:24: DIGIT
                    	    {
                    	    mDIGIT(); 

                    	    }
                    	    break;

                    	default :
                    	    break loop5;
                        }
                    } while (true);


                    }
                    break;

            }


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DECIMAL"

    // $ANTLR start "FLOAT_POINT"
    public final void mFLOAT_POINT() throws RecognitionException {
        try {
            int _type = FLOAT_POINT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:159:13: ( DECIMAL ( 'E' ( PLUS | MINUS )? INTEGER ) )
            // src/astudy/parser/sql/QTemplate.g:159:15: DECIMAL ( 'E' ( PLUS | MINUS )? INTEGER )
            {
            mDECIMAL(); 
            // src/astudy/parser/sql/QTemplate.g:159:22: ( 'E' ( PLUS | MINUS )? INTEGER )
            // src/astudy/parser/sql/QTemplate.g:159:23: 'E' ( PLUS | MINUS )? INTEGER
            {
            match('E'); 
            // src/astudy/parser/sql/QTemplate.g:159:26: ( PLUS | MINUS )?
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0=='+'||LA7_0=='-') ) {
                alt7=1;
            }
            switch (alt7) {
                case 1 :
                    // src/astudy/parser/sql/QTemplate.g:
                    {
                    if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
                        input.consume();

                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        recover(mse);
                        throw mse;}


                    }
                    break;

            }

            mINTEGER(); 

            }


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "FLOAT_POINT"

    // $ANTLR start "CHARACTER_STRING"
    public final void mCHARACTER_STRING() throws RecognitionException {
        try {
            int _type = CHARACTER_STRING;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:163:18: ( '\\'' (~ '\\'' )* '\\'' ( '\\'' (~ '\\'' )* '\\'' )* )
            // src/astudy/parser/sql/QTemplate.g:163:20: '\\'' (~ '\\'' )* '\\'' ( '\\'' (~ '\\'' )* '\\'' )*
            {
            match('\''); 
            // src/astudy/parser/sql/QTemplate.g:163:25: (~ '\\'' )*
            loop8:
            do {
                int alt8=2;
                int LA8_0 = input.LA(1);

                if ( ((LA8_0>='\u0000' && LA8_0<='&')||(LA8_0>='(' && LA8_0<='\uFFFF')) ) {
                    alt8=1;
                }


                switch (alt8) {
            	case 1 :
            	    // src/astudy/parser/sql/QTemplate.g:163:26: ~ '\\''
            	    {
            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='\uFFFF') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    break loop8;
                }
            } while (true);

            match('\''); 
            // src/astudy/parser/sql/QTemplate.g:163:39: ( '\\'' (~ '\\'' )* '\\'' )*
            loop10:
            do {
                int alt10=2;
                int LA10_0 = input.LA(1);

                if ( (LA10_0=='\'') ) {
                    alt10=1;
                }


                switch (alt10) {
            	case 1 :
            	    // src/astudy/parser/sql/QTemplate.g:163:41: '\\'' (~ '\\'' )* '\\''
            	    {
            	    match('\''); 
            	    // src/astudy/parser/sql/QTemplate.g:163:46: (~ '\\'' )*
            	    loop9:
            	    do {
            	        int alt9=2;
            	        int LA9_0 = input.LA(1);

            	        if ( ((LA9_0>='\u0000' && LA9_0<='&')||(LA9_0>='(' && LA9_0<='\uFFFF')) ) {
            	            alt9=1;
            	        }


            	        switch (alt9) {
            	    	case 1 :
            	    	    // src/astudy/parser/sql/QTemplate.g:163:47: ~ '\\''
            	    	    {
            	    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='\uFFFF') ) {
            	    	        input.consume();

            	    	    }
            	    	    else {
            	    	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	    	        recover(mse);
            	    	        throw mse;}


            	    	    }
            	    	    break;

            	    	default :
            	    	    break loop9;
            	        }
            	    } while (true);

            	    match('\''); 

            	    }
            	    break;

            	default :
            	    break loop10;
                }
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CHARACTER_STRING"

    // $ANTLR start "TABLE_COLUMNS"
    public final void mTABLE_COLUMNS() throws RecognitionException {
        try {
            int _type = TABLE_COLUMNS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:164:15: ( ( ':' )? ( 'a' .. 'z' | 'A' .. 'Z' | '#' | '@' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '#' | '@' | '_' | '.' )* '.*' )
            // src/astudy/parser/sql/QTemplate.g:164:17: ( ':' )? ( 'a' .. 'z' | 'A' .. 'Z' | '#' | '@' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '#' | '@' | '_' | '.' )* '.*'
            {
            // src/astudy/parser/sql/QTemplate.g:164:17: ( ':' )?
            int alt11=2;
            int LA11_0 = input.LA(1);

            if ( (LA11_0==':') ) {
                alt11=1;
            }
            switch (alt11) {
                case 1 :
                    // src/astudy/parser/sql/QTemplate.g:164:17: ':'
                    {
                    match(':'); 

                    }
                    break;

            }

            if ( input.LA(1)=='#'||(input.LA(1)>='@' && input.LA(1)<='Z')||(input.LA(1)>='a' && input.LA(1)<='z') ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}

            // src/astudy/parser/sql/QTemplate.g:164:48: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '#' | '@' | '_' | '.' )*
            loop12:
            do {
                int alt12=2;
                int LA12_0 = input.LA(1);

                if ( (LA12_0=='.') ) {
                    int LA12_1 = input.LA(2);

                    if ( (LA12_1=='#'||LA12_1=='.'||(LA12_1>='0' && LA12_1<='9')||(LA12_1>='@' && LA12_1<='Z')||LA12_1=='_'||(LA12_1>='a' && LA12_1<='z')) ) {
                        alt12=1;
                    }


                }
                else if ( (LA12_0=='#'||(LA12_0>='0' && LA12_0<='9')||(LA12_0>='@' && LA12_0<='Z')||LA12_0=='_'||(LA12_0>='a' && LA12_0<='z')) ) {
                    alt12=1;
                }


                switch (alt12) {
            	case 1 :
            	    // src/astudy/parser/sql/QTemplate.g:
            	    {
            	    if ( input.LA(1)=='#'||input.LA(1)=='.'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='@' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    break loop12;
                }
            } while (true);

            match(".*"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "TABLE_COLUMNS"

    // $ANTLR start "IDENTIFIER"
    public final void mIDENTIFIER() throws RecognitionException {
        try {
            int _type = IDENTIFIER;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:165:13: ( ( ':' )? ( 'a' .. 'z' | 'A' .. 'Z' | '#' | '@' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '#' | '@' | '_' | '.' )* )
            // src/astudy/parser/sql/QTemplate.g:165:15: ( ':' )? ( 'a' .. 'z' | 'A' .. 'Z' | '#' | '@' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '#' | '@' | '_' | '.' )*
            {
            // src/astudy/parser/sql/QTemplate.g:165:15: ( ':' )?
            int alt13=2;
            int LA13_0 = input.LA(1);

            if ( (LA13_0==':') ) {
                alt13=1;
            }
            switch (alt13) {
                case 1 :
                    // src/astudy/parser/sql/QTemplate.g:165:15: ':'
                    {
                    match(':'); 

                    }
                    break;

            }

            if ( input.LA(1)=='#'||(input.LA(1)>='@' && input.LA(1)<='Z')||(input.LA(1)>='a' && input.LA(1)<='z') ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}

            // src/astudy/parser/sql/QTemplate.g:165:46: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '#' | '@' | '_' | '.' )*
            loop14:
            do {
                int alt14=2;
                int LA14_0 = input.LA(1);

                if ( (LA14_0=='#'||LA14_0=='.'||(LA14_0>='0' && LA14_0<='9')||(LA14_0>='@' && LA14_0<='Z')||LA14_0=='_'||(LA14_0>='a' && LA14_0<='z')) ) {
                    alt14=1;
                }


                switch (alt14) {
            	case 1 :
            	    // src/astudy/parser/sql/QTemplate.g:
            	    {
            	    if ( input.LA(1)=='#'||input.LA(1)=='.'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='@' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    break loop14;
                }
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "IDENTIFIER"

    // $ANTLR start "WHITESPACE"
    public final void mWHITESPACE() throws RecognitionException {
        try {
            int _type = WHITESPACE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:167:13: ( ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+ )
            // src/astudy/parser/sql/QTemplate.g:167:15: ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+
            {
            // src/astudy/parser/sql/QTemplate.g:167:15: ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+
            int cnt15=0;
            loop15:
            do {
                int alt15=2;
                int LA15_0 = input.LA(1);

                if ( ((LA15_0>='\t' && LA15_0<='\n')||(LA15_0>='\f' && LA15_0<='\r')||LA15_0==' ') ) {
                    alt15=1;
                }


                switch (alt15) {
            	case 1 :
            	    // src/astudy/parser/sql/QTemplate.g:
            	    {
            	    if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||(input.LA(1)>='\f' && input.LA(1)<='\r')||input.LA(1)==' ' ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    if ( cnt15 >= 1 ) break loop15;
                        EarlyExitException eee =
                            new EarlyExitException(15, input);
                        throw eee;
                }
                cnt15++;
            } while (true);

             _channel = HIDDEN; 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "WHITESPACE"

    // $ANTLR start "SINGLELINE_COMMENT"
    public final void mSINGLELINE_COMMENT() throws RecognitionException {
        try {
            int _type = SINGLELINE_COMMENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:168:20: ( '--' (~ ( '\\r' | '\\n' ) )* )
            // src/astudy/parser/sql/QTemplate.g:168:22: '--' (~ ( '\\r' | '\\n' ) )*
            {
            match("--"); 

            // src/astudy/parser/sql/QTemplate.g:168:26: (~ ( '\\r' | '\\n' ) )*
            loop16:
            do {
                int alt16=2;
                int LA16_0 = input.LA(1);

                if ( ((LA16_0>='\u0000' && LA16_0<='\t')||(LA16_0>='\u000B' && LA16_0<='\f')||(LA16_0>='\u000E' && LA16_0<='\uFFFF')) ) {
                    alt16=1;
                }


                switch (alt16) {
            	case 1 :
            	    // src/astudy/parser/sql/QTemplate.g:168:28: ~ ( '\\r' | '\\n' )
            	    {
            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    break loop16;
                }
            } while (true);

             _channel = HIDDEN; 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "SINGLELINE_COMMENT"

    // $ANTLR start "MULTILINE_COMMENT"
    public final void mMULTILINE_COMMENT() throws RecognitionException {
        try {
            int _type = MULTILINE_COMMENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // src/astudy/parser/sql/QTemplate.g:169:19: ( '/*' (~ '*' )* '*' ( '*' | (~ ( '*' | '/' ) (~ '*' )* '*' ) )* '/' )
            // src/astudy/parser/sql/QTemplate.g:169:21: '/*' (~ '*' )* '*' ( '*' | (~ ( '*' | '/' ) (~ '*' )* '*' ) )* '/'
            {
            match("/*"); 

            // src/astudy/parser/sql/QTemplate.g:169:26: (~ '*' )*
            loop17:
            do {
                int alt17=2;
                int LA17_0 = input.LA(1);

                if ( ((LA17_0>='\u0000' && LA17_0<=')')||(LA17_0>='+' && LA17_0<='\uFFFF')) ) {
                    alt17=1;
                }


                switch (alt17) {
            	case 1 :
            	    // src/astudy/parser/sql/QTemplate.g:169:27: ~ '*'
            	    {
            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<=')')||(input.LA(1)>='+' && input.LA(1)<='\uFFFF') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    break loop17;
                }
            } while (true);

            match('*'); 
            // src/astudy/parser/sql/QTemplate.g:169:38: ( '*' | (~ ( '*' | '/' ) (~ '*' )* '*' ) )*
            loop19:
            do {
                int alt19=3;
                int LA19_0 = input.LA(1);

                if ( (LA19_0=='*') ) {
                    alt19=1;
                }
                else if ( ((LA19_0>='\u0000' && LA19_0<=')')||(LA19_0>='+' && LA19_0<='.')||(LA19_0>='0' && LA19_0<='\uFFFF')) ) {
                    alt19=2;
                }


                switch (alt19) {
            	case 1 :
            	    // src/astudy/parser/sql/QTemplate.g:169:39: '*'
            	    {
            	    match('*'); 

            	    }
            	    break;
            	case 2 :
            	    // src/astudy/parser/sql/QTemplate.g:169:45: (~ ( '*' | '/' ) (~ '*' )* '*' )
            	    {
            	    // src/astudy/parser/sql/QTemplate.g:169:45: (~ ( '*' | '/' ) (~ '*' )* '*' )
            	    // src/astudy/parser/sql/QTemplate.g:169:47: ~ ( '*' | '/' ) (~ '*' )* '*'
            	    {
            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<=')')||(input.LA(1)>='+' && input.LA(1)<='.')||(input.LA(1)>='0' && input.LA(1)<='\uFFFF') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}

            	    // src/astudy/parser/sql/QTemplate.g:169:60: (~ '*' )*
            	    loop18:
            	    do {
            	        int alt18=2;
            	        int LA18_0 = input.LA(1);

            	        if ( ((LA18_0>='\u0000' && LA18_0<=')')||(LA18_0>='+' && LA18_0<='\uFFFF')) ) {
            	            alt18=1;
            	        }


            	        switch (alt18) {
            	    	case 1 :
            	    	    // src/astudy/parser/sql/QTemplate.g:169:61: ~ '*'
            	    	    {
            	    	    if ( (input.LA(1)>='\u0000' && input.LA(1)<=')')||(input.LA(1)>='+' && input.LA(1)<='\uFFFF') ) {
            	    	        input.consume();

            	    	    }
            	    	    else {
            	    	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	    	        recover(mse);
            	    	        throw mse;}


            	    	    }
            	    	    break;

            	    	default :
            	    	    break loop18;
            	        }
            	    } while (true);

            	    match('*'); 

            	    }


            	    }
            	    break;

            	default :
            	    break loop19;
                }
            } while (true);

            match('/'); 
             _channel = HIDDEN; 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "MULTILINE_COMMENT"

    public void mTokens() throws RecognitionException {
        // src/astudy/parser/sql/QTemplate.g:1:8: ( AS | ORDER | BY | ASC | DESC | FETCH | FIRST | FROM | ROW | ROWS | ONLY | FOR | UPDATE | OF | READ | OPTIMIZE | ALL | WITH | NC | UR | CS | KEEP | LOCKS | RS | RR | SELECT | UNION | DISTINCT | TABLE | WHERE | GROUP | HAVING | CROSS | JOIN | INNER | LEFT | RIGHT | OUTER | EXCEPTION | ON | NOT | AND | OR | SOME | ANY | BETWEEN | EXISTS | IN | LIKE | ESCAPE | IS | NULL | CONCAT | CASE | WHEN | THEN | ELSE | END | CAST | T__124 | T__125 | T__126 | T__127 | T__128 | COMMA | DOUBLE_STAR | STAR | SEMICOLON | LPAREN | RPAREN | EQ | NE | LE | GT | NL | NG | PLUS | MINUS | DOUBLE_BITWISEOR | DIVIDE | INTEGER | DECIMAL | FLOAT_POINT | CHARACTER_STRING | TABLE_COLUMNS | IDENTIFIER | WHITESPACE | SINGLELINE_COMMENT | MULTILINE_COMMENT )
        int alt20=89;
        alt20 = dfa20.predict(input);
        switch (alt20) {
            case 1 :
                // src/astudy/parser/sql/QTemplate.g:1:10: AS
                {
                mAS(); 

                }
                break;
            case 2 :
                // src/astudy/parser/sql/QTemplate.g:1:13: ORDER
                {
                mORDER(); 

                }
                break;
            case 3 :
                // src/astudy/parser/sql/QTemplate.g:1:19: BY
                {
                mBY(); 

                }
                break;
            case 4 :
                // src/astudy/parser/sql/QTemplate.g:1:22: ASC
                {
                mASC(); 

                }
                break;
            case 5 :
                // src/astudy/parser/sql/QTemplate.g:1:26: DESC
                {
                mDESC(); 

                }
                break;
            case 6 :
                // src/astudy/parser/sql/QTemplate.g:1:31: FETCH
                {
                mFETCH(); 

                }
                break;
            case 7 :
                // src/astudy/parser/sql/QTemplate.g:1:37: FIRST
                {
                mFIRST(); 

                }
                break;
            case 8 :
                // src/astudy/parser/sql/QTemplate.g:1:43: FROM
                {
                mFROM(); 

                }
                break;
            case 9 :
                // src/astudy/parser/sql/QTemplate.g:1:48: ROW
                {
                mROW(); 

                }
                break;
            case 10 :
                // src/astudy/parser/sql/QTemplate.g:1:52: ROWS
                {
                mROWS(); 

                }
                break;
            case 11 :
                // src/astudy/parser/sql/QTemplate.g:1:57: ONLY
                {
                mONLY(); 

                }
                break;
            case 12 :
                // src/astudy/parser/sql/QTemplate.g:1:62: FOR
                {
                mFOR(); 

                }
                break;
            case 13 :
                // src/astudy/parser/sql/QTemplate.g:1:66: UPDATE
                {
                mUPDATE(); 

                }
                break;
            case 14 :
                // src/astudy/parser/sql/QTemplate.g:1:73: OF
                {
                mOF(); 

                }
                break;
            case 15 :
                // src/astudy/parser/sql/QTemplate.g:1:76: READ
                {
                mREAD(); 

                }
                break;
            case 16 :
                // src/astudy/parser/sql/QTemplate.g:1:81: OPTIMIZE
                {
                mOPTIMIZE(); 

                }
                break;
            case 17 :
                // src/astudy/parser/sql/QTemplate.g:1:90: ALL
                {
                mALL(); 

                }
                break;
            case 18 :
                // src/astudy/parser/sql/QTemplate.g:1:94: WITH
                {
                mWITH(); 

                }
                break;
            case 19 :
                // src/astudy/parser/sql/QTemplate.g:1:99: NC
                {
                mNC(); 

                }
                break;
            case 20 :
                // src/astudy/parser/sql/QTemplate.g:1:102: UR
                {
                mUR(); 

                }
                break;
            case 21 :
                // src/astudy/parser/sql/QTemplate.g:1:105: CS
                {
                mCS(); 

                }
                break;
            case 22 :
                // src/astudy/parser/sql/QTemplate.g:1:108: KEEP
                {
                mKEEP(); 

                }
                break;
            case 23 :
                // src/astudy/parser/sql/QTemplate.g:1:113: LOCKS
                {
                mLOCKS(); 

                }
                break;
            case 24 :
                // src/astudy/parser/sql/QTemplate.g:1:119: RS
                {
                mRS(); 

                }
                break;
            case 25 :
                // src/astudy/parser/sql/QTemplate.g:1:122: RR
                {
                mRR(); 

                }
                break;
            case 26 :
                // src/astudy/parser/sql/QTemplate.g:1:125: SELECT
                {
                mSELECT(); 

                }
                break;
            case 27 :
                // src/astudy/parser/sql/QTemplate.g:1:132: UNION
                {
                mUNION(); 

                }
                break;
            case 28 :
                // src/astudy/parser/sql/QTemplate.g:1:138: DISTINCT
                {
                mDISTINCT(); 

                }
                break;
            case 29 :
                // src/astudy/parser/sql/QTemplate.g:1:147: TABLE
                {
                mTABLE(); 

                }
                break;
            case 30 :
                // src/astudy/parser/sql/QTemplate.g:1:153: WHERE
                {
                mWHERE(); 

                }
                break;
            case 31 :
                // src/astudy/parser/sql/QTemplate.g:1:159: GROUP
                {
                mGROUP(); 

                }
                break;
            case 32 :
                // src/astudy/parser/sql/QTemplate.g:1:165: HAVING
                {
                mHAVING(); 

                }
                break;
            case 33 :
                // src/astudy/parser/sql/QTemplate.g:1:172: CROSS
                {
                mCROSS(); 

                }
                break;
            case 34 :
                // src/astudy/parser/sql/QTemplate.g:1:178: JOIN
                {
                mJOIN(); 

                }
                break;
            case 35 :
                // src/astudy/parser/sql/QTemplate.g:1:183: INNER
                {
                mINNER(); 

                }
                break;
            case 36 :
                // src/astudy/parser/sql/QTemplate.g:1:189: LEFT
                {
                mLEFT(); 

                }
                break;
            case 37 :
                // src/astudy/parser/sql/QTemplate.g:1:194: RIGHT
                {
                mRIGHT(); 

                }
                break;
            case 38 :
                // src/astudy/parser/sql/QTemplate.g:1:200: OUTER
                {
                mOUTER(); 

                }
                break;
            case 39 :
                // src/astudy/parser/sql/QTemplate.g:1:206: EXCEPTION
                {
                mEXCEPTION(); 

                }
                break;
            case 40 :
                // src/astudy/parser/sql/QTemplate.g:1:216: ON
                {
                mON(); 

                }
                break;
            case 41 :
                // src/astudy/parser/sql/QTemplate.g:1:219: NOT
                {
                mNOT(); 

                }
                break;
            case 42 :
                // src/astudy/parser/sql/QTemplate.g:1:223: AND
                {
                mAND(); 

                }
                break;
            case 43 :
                // src/astudy/parser/sql/QTemplate.g:1:227: OR
                {
                mOR(); 

                }
                break;
            case 44 :
                // src/astudy/parser/sql/QTemplate.g:1:230: SOME
                {
                mSOME(); 

                }
                break;
            case 45 :
                // src/astudy/parser/sql/QTemplate.g:1:235: ANY
                {
                mANY(); 

                }
                break;
            case 46 :
                // src/astudy/parser/sql/QTemplate.g:1:239: BETWEEN
                {
                mBETWEEN(); 

                }
                break;
            case 47 :
                // src/astudy/parser/sql/QTemplate.g:1:247: EXISTS
                {
                mEXISTS(); 

                }
                break;
            case 48 :
                // src/astudy/parser/sql/QTemplate.g:1:254: IN
                {
                mIN(); 

                }
                break;
            case 49 :
                // src/astudy/parser/sql/QTemplate.g:1:257: LIKE
                {
                mLIKE(); 

                }
                break;
            case 50 :
                // src/astudy/parser/sql/QTemplate.g:1:262: ESCAPE
                {
                mESCAPE(); 

                }
                break;
            case 51 :
                // src/astudy/parser/sql/QTemplate.g:1:269: IS
                {
                mIS(); 

                }
                break;
            case 52 :
                // src/astudy/parser/sql/QTemplate.g:1:272: NULL
                {
                mNULL(); 

                }
                break;
            case 53 :
                // src/astudy/parser/sql/QTemplate.g:1:277: CONCAT
                {
                mCONCAT(); 

                }
                break;
            case 54 :
                // src/astudy/parser/sql/QTemplate.g:1:284: CASE
                {
                mCASE(); 

                }
                break;
            case 55 :
                // src/astudy/parser/sql/QTemplate.g:1:289: WHEN
                {
                mWHEN(); 

                }
                break;
            case 56 :
                // src/astudy/parser/sql/QTemplate.g:1:294: THEN
                {
                mTHEN(); 

                }
                break;
            case 57 :
                // src/astudy/parser/sql/QTemplate.g:1:299: ELSE
                {
                mELSE(); 

                }
                break;
            case 58 :
                // src/astudy/parser/sql/QTemplate.g:1:304: END
                {
                mEND(); 

                }
                break;
            case 59 :
                // src/astudy/parser/sql/QTemplate.g:1:308: CAST
                {
                mCAST(); 

                }
                break;
            case 60 :
                // src/astudy/parser/sql/QTemplate.g:1:313: T__124
                {
                mT__124(); 

                }
                break;
            case 61 :
                // src/astudy/parser/sql/QTemplate.g:1:320: T__125
                {
                mT__125(); 

                }
                break;
            case 62 :
                // src/astudy/parser/sql/QTemplate.g:1:327: T__126
                {
                mT__126(); 

                }
                break;
            case 63 :
                // src/astudy/parser/sql/QTemplate.g:1:334: T__127
                {
                mT__127(); 

                }
                break;
            case 64 :
                // src/astudy/parser/sql/QTemplate.g:1:341: T__128
                {
                mT__128(); 

                }
                break;
            case 65 :
                // src/astudy/parser/sql/QTemplate.g:1:348: COMMA
                {
                mCOMMA(); 

                }
                break;
            case 66 :
                // src/astudy/parser/sql/QTemplate.g:1:354: DOUBLE_STAR
                {
                mDOUBLE_STAR(); 

                }
                break;
            case 67 :
                // src/astudy/parser/sql/QTemplate.g:1:366: STAR
                {
                mSTAR(); 

                }
                break;
            case 68 :
                // src/astudy/parser/sql/QTemplate.g:1:371: SEMICOLON
                {
                mSEMICOLON(); 

                }
                break;
            case 69 :
                // src/astudy/parser/sql/QTemplate.g:1:381: LPAREN
                {
                mLPAREN(); 

                }
                break;
            case 70 :
                // src/astudy/parser/sql/QTemplate.g:1:388: RPAREN
                {
                mRPAREN(); 

                }
                break;
            case 71 :
                // src/astudy/parser/sql/QTemplate.g:1:395: EQ
                {
                mEQ(); 

                }
                break;
            case 72 :
                // src/astudy/parser/sql/QTemplate.g:1:398: NE
                {
                mNE(); 

                }
                break;
            case 73 :
                // src/astudy/parser/sql/QTemplate.g:1:401: LE
                {
                mLE(); 

                }
                break;
            case 74 :
                // src/astudy/parser/sql/QTemplate.g:1:404: GT
                {
                mGT(); 

                }
                break;
            case 75 :
                // src/astudy/parser/sql/QTemplate.g:1:407: NL
                {
                mNL(); 

                }
                break;
            case 76 :
                // src/astudy/parser/sql/QTemplate.g:1:410: NG
                {
                mNG(); 

                }
                break;
            case 77 :
                // src/astudy/parser/sql/QTemplate.g:1:413: PLUS
                {
                mPLUS(); 

                }
                break;
            case 78 :
                // src/astudy/parser/sql/QTemplate.g:1:418: MINUS
                {
                mMINUS(); 

                }
                break;
            case 79 :
                // src/astudy/parser/sql/QTemplate.g:1:424: DOUBLE_BITWISEOR
                {
                mDOUBLE_BITWISEOR(); 

                }
                break;
            case 80 :
                // src/astudy/parser/sql/QTemplate.g:1:441: DIVIDE
                {
                mDIVIDE(); 

                }
                break;
            case 81 :
                // src/astudy/parser/sql/QTemplate.g:1:448: INTEGER
                {
                mINTEGER(); 

                }
                break;
            case 82 :
                // src/astudy/parser/sql/QTemplate.g:1:456: DECIMAL
                {
                mDECIMAL(); 

                }
                break;
            case 83 :
                // src/astudy/parser/sql/QTemplate.g:1:464: FLOAT_POINT
                {
                mFLOAT_POINT(); 

                }
                break;
            case 84 :
                // src/astudy/parser/sql/QTemplate.g:1:476: CHARACTER_STRING
                {
                mCHARACTER_STRING(); 

                }
                break;
            case 85 :
                // src/astudy/parser/sql/QTemplate.g:1:493: TABLE_COLUMNS
                {
                mTABLE_COLUMNS(); 

                }
                break;
            case 86 :
                // src/astudy/parser/sql/QTemplate.g:1:507: IDENTIFIER
                {
                mIDENTIFIER(); 

                }
                break;
            case 87 :
                // src/astudy/parser/sql/QTemplate.g:1:518: WHITESPACE
                {
                mWHITESPACE(); 

                }
                break;
            case 88 :
                // src/astudy/parser/sql/QTemplate.g:1:529: SINGLELINE_COMMENT
                {
                mSINGLELINE_COMMENT(); 

                }
                break;
            case 89 :
                // src/astudy/parser/sql/QTemplate.g:1:548: MULTILINE_COMMENT
                {
                mMULTILINE_COMMENT(); 

                }
                break;

        }

    }


    protected DFA20 dfa20 = new DFA20(this);
    static final String DFA20_eotS =
        "\1\45\26\60\1\uffff\1\147\4\uffff\1\152\1\uffff\1\154\1\uffff\1"+
        "\156\1\uffff\1\160\1\45\1\uffff\1\163\1\161\2\uffff\1\60\1\uffff"+
        "\1\166\3\60\1\uffff\1\60\1\174\1\176\1\177\2\60\1\u0082\11\60\1"+
        "\u008c\1\u008d\2\60\1\u0090\3\60\1\u0094\2\60\1\u0097\17\60\1\u00a8"+
        "\1\u00a9\10\60\14\uffff\1\163\1\uffff\1\161\1\u00b3\1\uffff\1\u00b4"+
        "\1\u00b5\1\u00b6\1\uffff\1\60\1\uffff\1\60\2\uffff\2\60\1\uffff"+
        "\6\60\1\u00c1\1\u00c3\1\60\2\uffff\2\60\1\uffff\3\60\1\uffff\1\u00cb"+
        "\1\60\1\uffff\20\60\2\uffff\4\60\1\u00e2\4\60\4\uffff\1\60\1\u00e8"+
        "\3\60\1\u00ec\3\60\1\u00f0\1\uffff\1\u00f1\1\uffff\1\u00f2\3\60"+
        "\1\u00f6\1\60\1\u00f8\1\uffff\1\u00f9\2\60\1\u00fc\1\u00fd\1\60"+
        "\1\u00ff\1\60\1\u0101\1\u0102\1\60\1\u0104\1\60\1\u0106\2\60\1\u0109"+
        "\4\60\1\u010e\1\uffff\4\60\1\u0113\1\uffff\1\60\1\u0115\1\60\1\uffff"+
        "\1\60\1\u0118\1\u0119\3\uffff\1\u011a\1\60\1\u011c\1\uffff\1\u011d"+
        "\2\uffff\1\u011e\1\60\2\uffff\1\60\1\uffff\1\u0121\2\uffff\1\60"+
        "\1\uffff\1\u0123\1\uffff\1\u0124\1\60\1\uffff\1\u0126\3\60\1\uffff"+
        "\4\60\1\uffff\1\60\1\uffff\2\60\3\uffff\1\u0131\3\uffff\1\u0132"+
        "\1\60\1\uffff\1\u0134\2\uffff\1\u0135\1\uffff\1\60\1\u0137\1\u0138"+
        "\5\60\1\u013e\1\60\2\uffff\1\60\2\uffff\1\60\2\uffff\1\60\1\uffff"+
        "\2\60\1\u0145\1\uffff\1\u0146\1\uffff\4\60\2\uffff\1\u014b\3\60"+
        "\1\uffff\2\60\1\u0151\2\60\1\uffff\3\60\1\u0157\1\u0158\2\uffff";
    static final String DFA20_eofS =
        "\u0159\uffff";
    static final String DFA20_minS =
        "\1\11\26\43\1\uffff\1\52\4\uffff\1\75\1\74\1\75\1\uffff\1\55\1"+
        "\uffff\1\52\1\56\1\uffff\1\60\1\43\1\uffff\2\43\1\uffff\4\43\1\uffff"+
        "\65\43\14\uffff\1\60\1\uffff\2\43\1\uffff\3\43\1\uffff\1\43\1\uffff"+
        "\1\43\2\uffff\2\43\1\uffff\11\43\2\uffff\2\43\1\uffff\3\43\1\uffff"+
        "\2\43\1\uffff\20\43\2\uffff\11\43\4\uffff\12\43\1\uffff\1\43\1\uffff"+
        "\7\43\1\uffff\26\43\1\uffff\5\43\1\uffff\3\43\1\uffff\3\43\3\uffff"+
        "\3\43\1\uffff\1\43\2\uffff\2\43\2\uffff\1\43\1\uffff\1\43\2\uffff"+
        "\1\43\1\uffff\1\43\1\uffff\2\43\1\uffff\4\43\1\uffff\4\43\1\uffff"+
        "\1\43\1\uffff\2\43\3\uffff\1\43\3\uffff\2\43\1\uffff\1\43\2\uffff"+
        "\1\43\1\uffff\12\43\2\uffff\1\40\2\uffff\1\43\2\uffff\1\43\1\uffff"+
        "\3\43\1\uffff\1\43\1\uffff\4\43\2\uffff\4\43\1\uffff\5\43\1\uffff"+
        "\5\43\2\uffff";
    static final String DFA20_maxS =
        "\1\174\26\172\1\uffff\1\52\4\uffff\2\76\1\75\1\uffff\1\55\1\uffff"+
        "\1\52\1\105\1\uffff\1\105\1\172\1\uffff\2\172\1\uffff\4\172\1\uffff"+
        "\65\172\14\uffff\1\105\1\uffff\2\172\1\uffff\3\172\1\uffff\1\172"+
        "\1\uffff\1\172\2\uffff\2\172\1\uffff\11\172\2\uffff\2\172\1\uffff"+
        "\3\172\1\uffff\2\172\1\uffff\20\172\2\uffff\11\172\4\uffff\12\172"+
        "\1\uffff\1\172\1\uffff\7\172\1\uffff\26\172\1\uffff\5\172\1\uffff"+
        "\3\172\1\uffff\3\172\3\uffff\3\172\1\uffff\1\172\2\uffff\2\172\2"+
        "\uffff\1\172\1\uffff\1\172\2\uffff\1\172\1\uffff\1\172\1\uffff\2"+
        "\172\1\uffff\4\172\1\uffff\4\172\1\uffff\1\172\1\uffff\2\172\3\uffff"+
        "\1\172\3\uffff\2\172\1\uffff\1\172\2\uffff\1\172\1\uffff\12\172"+
        "\2\uffff\1\172\2\uffff\1\172\2\uffff\1\172\1\uffff\3\172\1\uffff"+
        "\1\172\1\uffff\4\172\2\uffff\4\172\1\uffff\5\172\1\uffff\5\172\2"+
        "\uffff";
    static final String DFA20_acceptS =
        "\27\uffff\1\101\1\uffff\1\104\1\105\1\106\1\107\3\uffff\1\115\1"+
        "\uffff\1\117\2\uffff\1\121\2\uffff\1\124\2\uffff\1\127\4\uffff\1"+
        "\126\65\uffff\1\102\1\103\1\110\1\114\1\111\1\113\1\112\1\130\1"+
        "\116\1\131\1\120\1\123\1\uffff\1\122\2\uffff\1\1\3\uffff\1\125\1"+
        "\uffff\1\53\1\uffff\1\50\1\16\2\uffff\1\3\11\uffff\1\30\1\31\2\uffff"+
        "\1\24\3\uffff\1\23\2\uffff\1\25\20\uffff\1\60\1\63\11\uffff\1\4"+
        "\1\21\1\52\1\55\12\uffff\1\14\1\uffff\1\11\7\uffff\1\51\26\uffff"+
        "\1\72\5\uffff\1\13\3\uffff\1\5\3\uffff\1\10\1\12\1\17\3\uffff\1"+
        "\22\1\uffff\1\67\1\64\2\uffff\1\66\1\73\1\uffff\1\26\1\uffff\1\44"+
        "\1\61\1\uffff\1\54\1\uffff\1\70\2\uffff\1\42\4\uffff\1\71\4\uffff"+
        "\1\2\1\uffff\1\46\2\uffff\1\6\1\7\1\45\1\uffff\1\33\1\36\1\41\2"+
        "\uffff\1\27\1\uffff\1\35\1\37\1\uffff\1\43\12\uffff\1\15\1\65\1"+
        "\uffff\1\32\1\40\1\uffff\1\57\1\62\1\uffff\1\75\3\uffff\1\56\1\uffff"+
        "\1\100\4\uffff\1\20\1\34\4\uffff\1\47\5\uffff\1\77\5\uffff\1\76"+
        "\1\74";
    static final String DFA20_specialS =
        "\u0159\uffff}>";
    static final String[] DFA20_transitionS = {
            "\2\53\1\uffff\2\53\22\uffff\1\53\1\36\1\uffff\1\52\3\uffff"+
            "\1\50\1\32\1\33\1\30\1\40\1\27\1\41\1\46\1\43\12\44\1\51\1\31"+
            "\1\35\1\34\1\37\1\uffff\2\52\1\25\1\52\1\26\1\47\1\52\1\24\23"+
            "\52\6\uffff\1\1\1\3\1\12\1\4\1\23\1\5\1\17\1\20\1\22\1\21\1"+
            "\13\1\14\1\52\1\11\1\2\2\52\1\6\1\15\1\16\1\7\1\52\1\10\3\52"+
            "\1\uffff\1\42",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\13\61\1\55\1\61\1\56\4\61\1\54\7\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\5\61\1\64\7\61\1\63\1\61\1\65\1\61\1\62\2\61\1\66"+
            "\5\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\70\23\61\1\67\1\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\71\3\61\1\72\21\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\73\3\61\1\74\5\61\1\76\2\61\1\75\10\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\100\3\61\1\103\5\61\1\77\2\61\1\102\1\101"+
            "\7\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\15\61\1\106\1\61\1\104\1\61\1\105\10\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\7\61\1\110\1\107\21\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\2\61\1\111\13\61\1\112\5\61\1\113\5\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\1\117\15\61\1\116\2\61\1\115\1\114\1\61\1\120\5"+
            "\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\121\25\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\123\3\61\1\124\5\61\1\122\13\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\125\11\61\1\126\13\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\1\127\6\61\1\130\22\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\21\61\1\131\10\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\1\132\31\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\16\61\1\133\13\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\15\61\1\134\4\61\1\135\7\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\13\61\1\140\1\61\1\141\4\61\1\137\4\61\1\136\2\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\22\61\1\142\10\61"+
            "\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\11\61\1\143\21\61"+
            "\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\5\61\1\144\25\61"+
            "\4\uffff\1\61\1\uffff\4\61\1\145\25\61",
            "",
            "\1\146",
            "",
            "",
            "",
            "",
            "\1\151\1\150",
            "\1\153\1\150\1\151",
            "\1\153",
            "",
            "\1\155",
            "",
            "\1\157",
            "\1\46\1\uffff\12\44\13\uffff\1\161",
            "",
            "\12\162\13\uffff\1\161",
            "\1\61\12\uffff\1\57\1\uffff\12\164\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "\1\52\34\uffff\33\52\6\uffff\32\52",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\2\61\1\165\27\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\13\61\1\167\16\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\3\61\1\170\24\61\1\171\1\61",
            "\1\61\6\uffff\1\172\3\uffff\1\57\1\uffff\12\61\6\uffff\33"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\3\61\1\173\26\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\13\61\1\175\16\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u0080\6\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u0081\6\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u0083\6\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\22\61\1\u0084\7\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\22\61\1\u0085\7\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u0086\6\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\21\61\1\u0087\10\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\16\61\1\u0088\13\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\21\61\1\u0089\10\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\26\61\1\u008a\3\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\1\u008b\31\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\6\61\1\u008e\23\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\3\61\1\u008f\26\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\10\61\1\u0091\21\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u0092\6\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u0093\25\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u0095\6\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\13\61\1\u0096\16\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\16\61\1\u0098\13\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\15\61\1\u0099\14\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\22\61\1\u009a\7\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\21\61\1\u009b\10\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u009c\25\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\2\61\1\u009d\27\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\5\61\1\u009e\24\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\12\61\1\u009f\17\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\13\61\1\u00a0\16\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\14\61\1\u00a1\15\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\1\61\1\u00a2\30\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u00a3\25\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\16\61\1\u00a4\13\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\25\61\1\u00a5\4\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\10\61\1\u00a6\21\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\15\61\1\u00a7\14\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\2\61\1\u00aa\5\61\1\u00ab\21\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\2\61\1\u00ac\27\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\22\61\1\u00ad\7\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\3\61\1\u00ae\26\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\1\61\1\u00af\31"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\16\61\1\u00b0\14"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\3\61\1\u00b1\27"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\13\61\1\u00b2\16\61",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\12\162\13\uffff\1\161",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\164\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u00b7\25\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\30\61\1\u00b8\1\61",
            "",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\10\61\1\u00b9\21\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u00ba\25\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\26\61\1\u00bb\3\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\2\61\1\u00bc\27\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u00bd\6\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\2\61\1\u00be\27\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\22\61\1\u00bf\7\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\14\61\1\u00c0\15\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\22\61\1\u00c2\7\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\3\61\1\u00c4\26\61",
            "",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\7\61\1\u00c5\22\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\1\u00c6\31\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\16\61\1\u00c7\13\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\7\61\1\u00c8\22\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\15\61\1\u00ca\3\61\1\u00c9\10\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\13\61\1\u00cc\16\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\22\61\1\u00cd\7\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\2\61\1\u00ce\27\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u00cf\16\61\1\u00d0\6\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\21\61\1\u00d1\10\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\17\61\1\u00d2\12\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\12\61\1\u00d3\17\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u00d4\6\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u00d5\25\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u00d6\25\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u00d7\25\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\13\61\1\u00d8\16\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\15\61\1\u00d9\14\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\24\61\1\u00da\5\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\10\61\1\u00db\21\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\15\61\1\u00dc\14\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u00dd\25\61",
            "",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u00de\25\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\22\61\1\u00df\7\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\1\u00e0\31\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u00e1\25\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\20\61\1\u00e3\12"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\1\61\1\u00e4\31"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\11\61\1\u00e5\21"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\10\61\1\u00e6\21\61",
            "",
            "",
            "",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\21\61\1\u00e7\10\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\14\61\1\u00e9\15\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\21\61\1\u00ea\10\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u00eb\25\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\10\61\1\u00ed\21\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\7\61\1\u00ee\22\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u00ef\6\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u00f3\6\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u00f4\6\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\15\61\1\u00f5\14\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u00f7\25\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\22\61\1\u00fa\7\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\1\u00fb\31\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u00fe\25\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\22\61\1\u0100\7\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\2\61\1\u0103\27\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u0105\25\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\17\61\1\u0107\12\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\15\61\1\u0108\14\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\21\61\1\u010a\10\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\17\61\1\u010b\12\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u010c\6\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\17\61\1\u010d\12\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\10\61\1\u010f\22"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\22\61\1\u0110\10"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\15\61\1\u0111\15"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\14\61\1\u0112\15\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\10\61\1\u0114\21\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u0116\25\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\15\61\1\u0117\14\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u011b\25\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u011f\6\61",
            "",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\15\61\1\u0120\14\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u0122\6\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\6\61\1\u0125\23\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u0127\6\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\22\61\1\u0128\7\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u0129\25\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\11\61\1\u012a\21"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\31\61\1\u012b\1"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\1\61\1\u012c\31"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\10\61\1\u012d\21\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\31\61\1\u012e",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\15\61\1\u012f\14\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\2\61\1\u0130\27\61",
            "",
            "",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u0133\6\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\10\61\1\u0136\21\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\3\61\1\u0139\27"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\11\uffff\1\u013a\1\57\1\uffff\12\61\6\uffff\33\61\4"+
            "\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\14\61\1\u013b\16"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u013c\6\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u013d\25\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\23\61\1\u013f\6\61",
            "",
            "",
            "\1\u0140\2\uffff\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff"+
            "\33\61\4\uffff\1\61\1\uffff\32\61",
            "",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\16\61\1\u0141\13\61",
            "",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\u0142\1\uffff\32\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\u0143\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\4\61\1\u0144\25\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\15\61\1\u0147\14\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\23\61\1\u0148\7"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\20\61\1\u0149\12"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\21\61\1\u014a\10\61",
            "",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\24\61\1\u014c\6"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\17\61\1\u014d\13"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\22\61\1\u014e\7\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\22\61\1\u014f\10"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\11\61\1\u0150\21"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\11\61\1\u0152\21"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\16\61\1\u0153\14"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\16\61\1\u0154\14"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\24\61\1\u0155\6"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\7\61\1\u0156\23"+
            "\61\4\uffff\1\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "\1\61\12\uffff\1\57\1\uffff\12\61\6\uffff\33\61\4\uffff\1"+
            "\61\1\uffff\32\61",
            "",
            ""
    };

    static final short[] DFA20_eot = DFA.unpackEncodedString(DFA20_eotS);
    static final short[] DFA20_eof = DFA.unpackEncodedString(DFA20_eofS);
    static final char[] DFA20_min = DFA.unpackEncodedStringToUnsignedChars(DFA20_minS);
    static final char[] DFA20_max = DFA.unpackEncodedStringToUnsignedChars(DFA20_maxS);
    static final short[] DFA20_accept = DFA.unpackEncodedString(DFA20_acceptS);
    static final short[] DFA20_special = DFA.unpackEncodedString(DFA20_specialS);
    static final short[][] DFA20_transition;

    static {
        int numStates = DFA20_transitionS.length;
        DFA20_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA20_transition[i] = DFA.unpackEncodedString(DFA20_transitionS[i]);
        }
    }

    class DFA20 extends DFA {

        public DFA20(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 20;
            this.eot = DFA20_eot;
            this.eof = DFA20_eof;
            this.min = DFA20_min;
            this.max = DFA20_max;
            this.accept = DFA20_accept;
            this.special = DFA20_special;
            this.transition = DFA20_transition;
        }
        public String getDescription() {
            return "1:1: Tokens : ( AS | ORDER | BY | ASC | DESC | FETCH | FIRST | FROM | ROW | ROWS | ONLY | FOR | UPDATE | OF | READ | OPTIMIZE | ALL | WITH | NC | UR | CS | KEEP | LOCKS | RS | RR | SELECT | UNION | DISTINCT | TABLE | WHERE | GROUP | HAVING | CROSS | JOIN | INNER | LEFT | RIGHT | OUTER | EXCEPTION | ON | NOT | AND | OR | SOME | ANY | BETWEEN | EXISTS | IN | LIKE | ESCAPE | IS | NULL | CONCAT | CASE | WHEN | THEN | ELSE | END | CAST | T__124 | T__125 | T__126 | T__127 | T__128 | COMMA | DOUBLE_STAR | STAR | SEMICOLON | LPAREN | RPAREN | EQ | NE | LE | GT | NL | NG | PLUS | MINUS | DOUBLE_BITWISEOR | DIVIDE | INTEGER | DECIMAL | FLOAT_POINT | CHARACTER_STRING | TABLE_COLUMNS | IDENTIFIER | WHITESPACE | SINGLELINE_COMMENT | MULTILINE_COMMENT );";
        }
    }
 

}